library(tidyverse)
library(ggthemes)
library(gganimate)
library(glue)
library(readxl)
library(janitor)
library(rlang)
theme_set(theme_minimal(base_size = 26, base_family = "Roboto"))
pre_2016_decile <- exprs(
rank %in% c(1:651) ~ "1",
rank %in% c(652:1301) ~ "2",
rank %in% c(1302:1952) ~ "3",
rank %in% c(1953:2602) ~ "4",
rank %in% c(2603:3253) ~ "5",
rank %in% c(3254:3903) ~ "6",
rank %in% c(3904:4554) ~ "7",
rank %in% c(4555:5204) ~ "8",
rank %in% c(5205:5855) ~ "9",
rank %in% c(5856:6505) ~ "10")
post_2016_decile <- exprs(
rank %in% c(1:697) ~ "1",
rank %in% c(698:1395) ~ "2",
rank %in% c(1396:2092) ~ "3",
rank %in% c(2093:2790) ~ "4",
rank %in% c(2791:3488) ~ "5",
rank %in% c(3489:4185) ~ "6",
rank %in% c(4186:4883) ~ "7",
rank %in% c(4884:5580) ~ "8",
rank %in% c(5581:6278) ~ "9",
rank %in% c(6279:6976) ~ "10")
simd_2006 <- read_xls("raw_data/SIMD_2006.xls") %>%
clean_names() %>%
select(local_authority_name, data_zone, total_population_sape_2004, simd_2006_rank) %>%
rename(la = local_authority_name,
pop = total_population_sape_2004,
rank = simd_2006_rank) %>%
mutate(year = "2006",
decile = case_when(!!!pre_2016_decile),
la = str_replace(la, "Edinburgh, City of", "City of Edinburgh"),
la = str_replace(la, "Eilean Siar", "Na h-Eileanan an Iar"))
## New names:
## * `` -> ...25
simd_2006
^
simd_2009 <- read_xls("raw_data/SIMD_2009.xls") %>%
clean_names() %>%
select(local_authority_name, data_zone,
total_population_sape_2007, simd_2009_v2_rank_revised_19_07_10) %>%
rename(la = local_authority_name,
pop = total_population_sape_2007,
rank = simd_2009_v2_rank_revised_19_07_10) %>%
mutate(year = "2009",
decile = case_when(!!!pre_2016_decile),
la = str_replace(la, "Edinburgh, City of", "City of Edinburgh"),
la = str_replace(la, "Eilean Siar", "Na h-Eileanan an Iar"))
## New names:
## * `` -> ...25
simd_2009
simd_2012 <- read_xls("raw_data/SIMD_2012.xls") %>%
clean_names() %>%
select(local_authority_name, data_zone,
total_population_sape_2010, overall_simd_2012_rank) %>%
rename(la = local_authority_name,
pop = total_population_sape_2010,
rank = overall_simd_2012_rank) %>%
mutate(year = "2012",
decile = case_when(!!!pre_2016_decile),
la = str_replace(la, "Edinburgh, City of", "City of Edinburgh"),
la = str_replace(la, "Eilean Siar", "Na h-Eileanan an Iar"))
## New names:
## * `` -> ...26
simd_2012
simd_2016 <- read_xlsx("raw_data/SIMD_2016.xlsx", sheet = 2) %>%
clean_names() %>%
select(council_area, x2016, total_population, overall_simd16_rank) %>%
rename(la = council_area,
data_zone = x2016,
pop = total_population,
rank = overall_simd16_rank) %>%
mutate(year = "2016",
decile = case_when(!!!post_2016_decile),
la = str_replace(la, "Argyll and Bute", "Argyll & Bute"),
la = str_replace(la, "Dumfries and Galloway", "Dumfries & Galloway"),
la = str_replace(la, "Perth and Kinross", "Perth & Kinross"))
simd_2016
simd_2020 <- read_xlsx("raw_data/SIMD_2020.xlsx", sheet = 2) %>%
clean_names() %>%
select(council_area, data_zone, total_population, simd2020_rank) %>%
rename(la = council_area,
pop = total_population,
rank = simd2020_rank) %>%
mutate(year = "2020",
decile = case_when(!!!post_2016_decile),
la = str_replace(la, "Argyll and Bute", "Argyll & Bute"),
la = str_replace(la, "Dumfries and Galloway", "Dumfries & Galloway"),
la = str_replace(la, "Perth and Kinross", "Perth & Kinross")) %>%
arrange(la, year)
simd_2020
overall_data <-
full_join(simd_2006, simd_2009) %>%
full_join(., simd_2012) %>%
full_join(., simd_2016) %>%
full_join(., simd_2020)
## Joining, by = c("la", "data_zone", "pop", "rank", "year", "decile")Joining, by
## = c("la", "data_zone", "pop", "rank", "year", "decile")Joining, by = c("la",
## "data_zone", "pop", "rank", "year", "decile")Joining, by = c("la", "data_zone",
## "pop", "rank", "year", "decile")
overall_data %<>%
mutate(decile = factor(decile,
levels = c(1:10),
labels = c("1", "2", "3", "4", "5",
"6", "7", "8", "9", "10")),
year = factor(year,
levels = c("2006", "2009", "2012", "2016", "2020"),
labels = c("2006", "2009", "2012", "2016", "2020"))) %>%
group_by(la, year, decile) %>%
mutate(total_dec_pop = sum(pop)) %>%
ungroup %>%
distinct(la, year, decile, .keep_all = TRUE) %>%
arrange(la, year, decile) %>%
group_by(la, year) %>%
mutate(frq = total_dec_pop/sum(total_dec_pop)) %>%
ungroup %>%
select(la, year, decile, frq)
rm(list = c("post_2016_decile", "pre_2016_decile", "simd_2006", "simd_2009",
"simd_2012", "simd_2016", "simd_2020"))
overall_data
base_plot <-
overall_data %>%
ggplot(aes(decile, frq, fill = decile)) +
geom_col() +
scale_fill_ptol(guide = guide_legend(nrow = 1),
labels = c("1-most deprived", "2", "3", "4", "5",
"6", "7", "8", "9", "10-most affluent")) +
scale_y_continuous(labels = scales::percent_format(accuracy = 1)) +
facet_wrap(~la, strip.position = "bottom") +
theme(legend.position = "bottom",
axis.text.x = element_blank(),
plot.subtitle = element_text(size = 30))
anime <-
base_plot +
transition_states(year,
transition_length = 6,
state_length = 3) +
ease_aes("cubic-in-out") +
labs(subtitle = "Year: {closest_state}",
title = "Change in percentage living in SIMD deciles by Local Authority",
x = "",
y = "",
fill = "SIMD Decile",
caption = "Data from https://www.gov.scot/publications/scottish-index-of-multiple-deprivation-2020-data-zone-look-up/")
animate(anime, width = 1400, height = 1000)
anim_save(filename = "plots/simd.gif", animation = last_animation())
devtools::session_info()
## ─ Session info ───────────────────────────────────────────────────────────────
## setting value
## version R version 3.6.2 (2019-12-12)
## os macOS Catalina 10.15.2
## system x86_64, darwin15.6.0
## ui X11
## language (EN)
## collate en_GB.UTF-8
## ctype en_GB.UTF-8
## tz Europe/London
## date 2020-01-28
##
## ─ Packages ───────────────────────────────────────────────────────────────────
## package * version date lib source
## assertthat 0.2.1 2019-03-21 [1] CRAN (R 3.6.0)
## backports 1.1.5 2019-10-02 [1] CRAN (R 3.6.0)
## broom 0.5.3 2019-12-14 [1] CRAN (R 3.6.0)
## callr 3.4.0 2019-12-09 [1] CRAN (R 3.6.0)
## cellranger 1.1.0 2016-07-27 [1] CRAN (R 3.6.0)
## cli 2.0.0 2019-12-09 [1] CRAN (R 3.6.0)
## colorspace 1.4-1 2019-03-18 [1] CRAN (R 3.6.0)
## crayon 1.3.4 2017-09-16 [1] CRAN (R 3.6.0)
## DBI 1.1.0 2019-12-15 [1] CRAN (R 3.6.0)
## dbplyr 1.4.2 2019-06-17 [1] CRAN (R 3.6.0)
## desc 1.2.0 2018-05-01 [1] CRAN (R 3.6.0)
## devtools 2.2.1 2019-09-24 [1] CRAN (R 3.6.0)
## digest 0.6.23 2019-11-23 [1] CRAN (R 3.6.0)
## dplyr * 0.8.3 2019-07-04 [1] CRAN (R 3.6.0)
## ellipsis 0.3.0 2019-09-20 [1] CRAN (R 3.6.0)
## evaluate 0.14 2019-05-28 [1] CRAN (R 3.6.0)
## fansi 0.4.0 2018-10-05 [1] CRAN (R 3.6.0)
## farver 2.0.1 2019-11-13 [1] CRAN (R 3.6.0)
## forcats * 0.4.0 2019-02-17 [1] CRAN (R 3.6.0)
## fs 1.3.1 2019-05-06 [1] CRAN (R 3.6.0)
## generics 0.0.2 2018-11-29 [1] CRAN (R 3.6.0)
## gganimate * 1.0.4 2019-11-18 [1] CRAN (R 3.6.0)
## ggplot2 * 3.2.1 2019-08-10 [1] CRAN (R 3.6.0)
## ggthemes * 4.2.0 2019-05-13 [1] CRAN (R 3.6.0)
## gifski 0.8.6 2018-09-28 [1] CRAN (R 3.6.0)
## glue * 1.3.1 2019-03-12 [1] CRAN (R 3.6.0)
## gtable 0.3.0 2019-03-25 [1] CRAN (R 3.6.0)
## haven 2.2.0 2019-11-08 [1] CRAN (R 3.6.0)
## hms 0.5.2 2019-10-30 [1] CRAN (R 3.6.0)
## htmltools 0.4.0 2019-10-04 [1] CRAN (R 3.6.0)
## httr 1.4.1 2019-08-05 [1] CRAN (R 3.6.0)
## janitor * 1.2.0 2019-04-21 [1] CRAN (R 3.6.0)
## jsonlite 1.6 2018-12-07 [1] CRAN (R 3.6.0)
## knitr 1.26 2019-11-12 [1] CRAN (R 3.6.0)
## labeling 0.3 2014-08-23 [1] CRAN (R 3.6.0)
## lattice 0.20-38 2018-11-04 [1] CRAN (R 3.6.2)
## lazyeval 0.2.2 2019-03-15 [1] CRAN (R 3.6.0)
## lifecycle 0.1.0 2019-08-01 [1] CRAN (R 3.6.0)
## lubridate 1.7.4 2018-04-11 [1] CRAN (R 3.6.0)
## magrittr 1.5 2014-11-22 [1] CRAN (R 3.6.0)
## memoise 1.1.0 2017-04-21 [1] CRAN (R 3.6.0)
## modelr 0.1.5 2019-08-08 [1] CRAN (R 3.6.0)
## munsell 0.5.0 2018-06-12 [1] CRAN (R 3.6.0)
## nlme 3.1-143 2019-12-10 [1] CRAN (R 3.6.0)
## pillar 1.4.2 2019-06-29 [1] CRAN (R 3.6.0)
## pkgbuild 1.0.6 2019-10-09 [1] CRAN (R 3.6.0)
## pkgconfig 2.0.3 2019-09-22 [1] CRAN (R 3.6.0)
## pkgload 1.0.2 2018-10-29 [1] CRAN (R 3.6.0)
## plyr 1.8.5 2019-12-10 [1] CRAN (R 3.6.0)
## png 0.1-7 2013-12-03 [1] CRAN (R 3.6.0)
## prettyunits 1.0.2 2015-07-13 [1] CRAN (R 3.6.0)
## processx 3.4.1 2019-07-18 [1] CRAN (R 3.6.0)
## progress 1.2.2 2019-05-16 [1] CRAN (R 3.6.0)
## ps 1.3.0 2018-12-21 [1] CRAN (R 3.6.0)
## purrr * 0.3.3 2019-10-18 [1] CRAN (R 3.6.0)
## R6 2.4.1 2019-11-12 [1] CRAN (R 3.6.0)
## Rcpp 1.0.3 2019-11-08 [1] CRAN (R 3.6.0)
## readr * 1.3.1 2018-12-21 [1] CRAN (R 3.6.0)
## readxl * 1.3.1 2019-03-13 [1] CRAN (R 3.6.0)
## remotes 2.1.0 2019-06-24 [1] CRAN (R 3.6.0)
## reprex 0.3.0 2019-05-16 [1] CRAN (R 3.6.0)
## rlang * 0.4.2 2019-11-23 [1] CRAN (R 3.6.0)
## rmarkdown 2.0 2019-12-12 [1] CRAN (R 3.6.0)
## rprojroot 1.3-2 2018-01-03 [1] CRAN (R 3.6.0)
## rstudioapi 0.10 2019-03-19 [1] CRAN (R 3.6.0)
## rvest 0.3.5 2019-11-08 [1] CRAN (R 3.6.0)
## scales 1.1.0 2019-11-18 [1] CRAN (R 3.6.0)
## sessioninfo 1.1.1 2018-11-05 [1] CRAN (R 3.6.0)
## snakecase 0.11.0 2019-05-25 [1] CRAN (R 3.6.0)
## stringi 1.4.3 2019-03-12 [1] CRAN (R 3.6.0)
## stringr * 1.4.0 2019-02-10 [1] CRAN (R 3.6.0)
## testthat 2.3.1 2019-12-01 [1] CRAN (R 3.6.0)
## tibble * 2.1.3 2019-06-06 [1] CRAN (R 3.6.0)
## tidyr * 1.0.0 2019-09-11 [1] CRAN (R 3.6.0)
## tidyselect 0.2.5 2018-10-11 [1] CRAN (R 3.6.0)
## tidyverse * 1.3.0 2019-11-21 [1] CRAN (R 3.6.0)
## tweenr 1.0.1 2018-12-14 [1] CRAN (R 3.6.0)
## usethis 1.5.1 2019-07-04 [1] CRAN (R 3.6.0)
## vctrs 0.2.1 2019-12-17 [1] CRAN (R 3.6.2)
## withr 2.1.2 2018-03-15 [1] CRAN (R 3.6.0)
## xfun 0.11 2019-11-12 [1] CRAN (R 3.6.0)
## xml2 1.2.2 2019-08-09 [1] CRAN (R 3.6.0)
## yaml 2.2.0 2018-07-25 [1] CRAN (R 3.6.0)
## zeallot 0.1.0 2018-01-28 [1] CRAN (R 3.6.0)
##
## [1] /Library/Frameworks/R.framework/Versions/3.6/Resources/library